The present invention relates to telephone systems and similar communication systems and, more particularly, to a method for rapidly entering a frequently used access code such as a telephone number.
Telephone sets are known that include memories for storing and retrieving frequently dialed telephone numbers. Each frequently dialed number is associated with its own button, which is pressed by the user to dial that number. Because of the limited amount of space on the telephone set""s keypad, such systems are limited to only a small number (typically 10-20) of frequently dialed numbers.
There exist computer programs that attempt to complete strings keyed into the keyboard of a computer by a user, based on stored lists of strings. For example, Internet Explorer 4.0 suggests yet-to-be-entered characters of Internet URLs, based on a database of previously entered URLs. In order for such a suggestion to be made, the selection must be unambiguous. The portion of the string already keyed in must be the leading characters of only one of the URLs in the database. For example, if the database includes the URLs
http://www.fresh.com
and
http://www.froth.com
and the user keys in the string xe2x80x9chttp://www.frxe2x80x9d, Internet Explorer 4.0 lacks a criterion for deciding which of the two possibilities, xe2x80x9cesh.comxe2x80x9d and xe2x80x9coth.comxe2x80x9d to use to complete the URL.
It would be useful to provide telephone sets with a capability similar to this feature of Internet Explorer 4.0. At the very least, the provision of not-yet-dialed digits of telephone numbers would reduce the number of dialing mistakes committed by users. In addition, it would be very useful to provide a criterion for selecting one telephone number from among two or more telephone numbers that share the already-dialed lead digits. One particularly useful criterion would be the history of prior usage of the stored telephone numbers, i.e., a criterion based on when (dates and/or times), or in what order, the stored telephone numbers have been dialed in the past. For example, if the stored telephone numbers were accessed in a last-in-first-out manner, a user could redial a busy telephone number merely by dialing the first digit of the number. If a user tends to dial particular telephone numbers on specific days of the week, then a separate last-in-first-out list of telephone numbers could stored for each day of the week. The search then would be performed, first in the list corresponding to the current day of the week, and then in the other lists.
There is thus a widely recognized need for, and it would be highly advantageous to have, a method of anticipatory telephone dialing that is based on the history of previous dialing.
According to the present invention there is provided, in a communications system wherein a user initiates a session by entering one of a plurality of access codes, each of the access code having a certain number of characters greater than 1, a method for completing entry of a target access code after the user has entered a number N of the characters of the target access code, N being at least 1 but less than the number of characters in the target access code, the method including the steps of: (a) providing a database of a plurality of reference access codes, each of the reference access code having a plurality of characters; (b) identifying, from among the plurality of reference access codes, at least one candidate access code having at least N+1 characters, a first N of the at least N+1 characters being identical to the N characters entered by the user; and (c) if a plurality of the candidate access codes are identified: (i) providing a selection criterion for selecting only one of the plurality of the candidate access codes, and (ii) selecting one of the plurality of candidate access codes to use to complete the target access code, the selecting being based on the selection criterion.
The present invention is applicable to any communication system in which a user enters an access code in order to acquire a communication link to another user. The access code typically is a string of characters. Because the primary application of the present invention is to telephony, the invention is described herein in terms of telephony: the access codes described herein are telephone numbers, which are strings of digits, and the user enters the access code by dialing.
According to the present invention, a telephone set with a visual display automatically completes telephone numbers as the telephone numbers are dialed, based on a criterion such as prior dialing history. In the simplest embodiment of the present invention, a memory is provided in which an ordered stack of telephone numbers is maintained. These internally stored telephone numbers are also referred to herein as xe2x80x9creferencexe2x80x9d telephone numbers. Whenever a complete telephone number is dialed by a user, that telephone number is entered into the top of the stack, pushing the previously entered reference telephone numbers down the stack. When a user begins to dial a new telephone number (also referred to herein as the xe2x80x9ctargetxe2x80x9d telephone number), each digit of the new telephone number is displayed on the visual display. As soon as each digit of the new telephone number is dialed, a controller inside the telephone searches down the stack for the first previously dialed telephone number whose initial digits match the newly dialed digits. If such a previously dialed telephone number is found, the remaining digits of this previously dialed telephone number are displayed next to the newly dialed digits, preferably in a different format (e.g., inverse video or a different color) so that the user can tell which digits were dialed and which digits were supplied by the telephone set. At any time during dialing, if the user recognizes the displayed number as the desired telephone number, then the user pushes a xe2x80x9cdialxe2x80x9d button to dial the balance of the displayed number. In some telephone sets configured to implement the present invention, this xe2x80x9cdialxe2x80x9d button is a special-purpose button separate from the standard telephone keypad. In other telephone sets configured to implement, the present invention, one of the keys of the standard keypad, for example the pound (#) key, is used as the xe2x80x9cdialxe2x80x9d button. Otherwise, the user dials the entire new telephone number in the conventional manner. In this way, telephone numbers that were previously dialed recently enough to still be on the stack are dialed more quickly than less recently dialed telephone numbers.
According to preferred embodiments of the present invention, a telephone set or similar apparatus is configured to anticipate a full newly dialed telephone number in a more flexible way. For example, the telephone set described above that automatically completes newly dialed telephone numbers gives preference to more recently dialed telephone numbers over less recently dialed telephone numbers. There are applications in which it would be desirable to assign other preferences to the stored telephone numbers. For example, in telemarketing, it is desirable to give preference to less recently dialed telephone numbers over more recently dialed telephone numbers, so that customers can be accessed in a round robin fashion.
Therefore, instead of merely storing telephone numbers as they are dialed, according to preferred embodiments of the present invention, each dialed telephone number is stored along with the time at which it was dialed. This time is referred to herein as the xe2x80x9ctime of most recent usagexe2x80x9d. When a user begins to dial a new telephone number, each time a digit of the new telephone number is dialed, the new digit string is compared to the initial digits of all the stored telephone numbers. If only one stored telephone number has leading digits identical to the dialed digits, then that stored telephone number is used to complete the new telephone number, as in the simple embodiment of the present invention. If two or more stored telephone numbers have leading digits identical to the dialed digits, then the stored telephone number to substitute for the new telephone number is selected according to a criterion that takes into account the times of most recent usage of the candidate stored telephone numbers. If none of the stored telephone numbers have leading digits identical to the dialed digits, or if the user chooses to override the substitution, then the newly dialed telephone number is added to the database of stored telephone numbers, along with the current time as the new telephone number""s time of most recent usage.
Whenever a new telephone number is dialed, an age of most recent usage is computed for each stored telephone number by subtracting the time of most recent usage from the current time. If this age exceeds a threshold (e.g., one year), the stored telephone number is deleted. The simplest selection criteria also are based on the age of most recent usage. Selecting the youngest candidate telephone number emulates the simple embodiment of the present invention. Selecting the oldest candidate telephone number provides the round robin selection desired for telemarketing. Other selection criteria are described below.